拼多多2021笔试真题集 多多的数字组合 多多的字符变换 多多的求和计算 多多的骰子组合

第一题 多多的数字组合

多多君最近在研究某种数字组合:
定义为:每个数字的十进制表示中(0~9),每个数位各不相同且各个数位之和等于N。
满足条件的数字可能很多,找到其中的最小值即可。

输入描述:
共一行,一个正整数N,如题意所示,表示组合中数字不同数位之和。
(1 <= N <= 1,000)

输出描述:
共一行,一个整数,表示该组合中的最小值。
如果组合中没有任何符合条件的数字,那么输出-1即可。

输入例子1:
5

输出例子1:
5

例子说明1:
符合条件的数字有:5,14,23,32,41
其中最小值为5

要求整理:每个数位不同,且和等于N,取组合最小值 数位共1-9,要求组合最小,所以不考虑0,并且低位用当前可用的最大数。 并且1+2+…+9
= 45,所以如果大于45可以直接返回-1。 每次都用最大的数,可以从9开始一直到1。

import java.util.*;

public class Main{
   
    public static void main(String[] args){
   
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();
        int ans = 0, max = 9, level = 1;
        if(num > 45)System.out.println(-1);
        else{
   
            while(num > 0){
   
                if(num > max){
   
                    ans += max * level;
                    level *= 10;
                }else ans += num *level;
                num -= max;
                max--;
            }
            System.out.println(ans);
        }
    }
}

多多的字符变换

多多君最近在研究字符串之间的变换,可以对字符串进行若干次变换操作:

交换任意两个相邻的字符,代价为0。
将任意一个字符a修改成字符b,代价为 |a - b|(绝对值)。
现在有两个长度相同的字

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值